# 为什么要写log?
    # log是为了排错
    # log用来做数据分析的

# 购物商城 - 数据库里
    # 什么时间购买了什么商品
    # 把哪些商品加入购物车了

# 做数据分析的内容 - 记录到日志
# 1.一个用户什么时间在什么地点 登录了购物程序
# 2.搜索了哪些信息,所长时间被展示出来了
# 3.什么时候关闭了软件
# 4.对哪些商品点进去看了

# 计算器
    # (1+2)*3/4
    # 计算乘法(表达式):
       # 记录日志:计算乘法表达式是什么,结果是什么
       # return
    # 计算除法
        # 记录日志:表达式是什么,结果是什么
       # return
    # 计算小括号内的
    # 计算加法
    # 计算减法

# 1.用来记录用户的行为 - 数据分析
# 2.用来记录用户的行为 - 操作审计
# 3.排查代码中的错误

import logging
# 输出内容是有等级的 : 默认处理warning级别以上的所有信息
logging.debug('debug message')          # 调试
logging.info('info message')            # 信息
logging.warning('warning message')      # 警告
logging.error('error message')          # 错误
logging.critical('critical message')    # 批判性的

def cal_mul(exp):
    exp=4*6
    logging.debug('4*6=24')
    return 24

def cal_div():
    pass

def cal_add():
    pass

def cal_sub(exp):
    exp=3-24
    logging.debug('3-24=21')
    return 21

def cal_inner_bracket(exp2):
    exp2=3-4*6
    ret=cal_mul(4*6)
    exp2=3-24
    ret=cal_sub(3-24)
    logging.debug('3-4*6=-21')
    return -21


def main(exp):
    exp=(1+2*(3-4*6))/5   #要去括号
    ret=cal_inner_bracket(3-4*6)
    return ret

logging.basicConfig(level=logging.DEBUG)
ret=main('(1+2*(3-4*6))/5')
print(ret)

# logging.warning('warning message test1')
logging.basicConfig(
    format='%(asctime)s-%(name)s-%(levelname)s-%(module)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M%S %p'
)
logging.warning('warning message test2')




















